{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. R的正交多项式回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Call:\n",
       "lm(formula = y ~ 1 + poly(x, 2))\n",
       "\n",
       "Residuals:\n",
       "     Min       1Q   Median       3Q      Max \n",
       "-0.33322 -0.14222 -0.07922  0.05275  0.84577 \n",
       "\n",
       "Coefficients:\n",
       "            Estimate Std. Error t value Pr(>|t|)    \n",
       "(Intercept)  2.40923    0.09126  26.400  1.4e-10 ***\n",
       "poly(x, 2)1 -0.94435    0.32904  -2.870 0.016669 *  \n",
       "poly(x, 2)2  1.74505    0.32904   5.303 0.000346 ***\n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "Residual standard error: 0.329 on 10 degrees of freedom\n",
       "Multiple R-squared:  0.7843,\tAdjusted R-squared:  0.7412 \n",
       "F-statistic: 18.18 on 2 and 10 DF,  p-value: 0.0004668\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###R语言正交多项式回归\n",
    "x<-c(37.0, 37.5, 38.0, 38.5, 39.0, 39.5, 40.0, 40.5, 41.0, 41.5, 42.0, 42.5, 43.0)\n",
    "y<-c(3.40, 3.00, 3.00, 3.27, 2.10, 1.83, 1.53,  1.70, 1.80, 1.90, 2.35, 2.54, 2.90)\n",
    "lm.pol<-lm(y~1+poly(x,2))\n",
    "summary(lm.pol)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1] 37.00 40.25 43.50 46.75 50.00\n",
      "        1         2         3         4         5 \n",
      " 3.687253  1.837967  3.284266  8.026149 16.063616 \n"
     ]
    }
   ],
   "source": [
    "xfit<-seq(37,50,len=5)\n",
    "yfit<-predict(lm.pol,data.frame(x=xfit))\n",
    "print(xfit)\n",
    "print(yfit)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 内在非线性回归\n",
    "R语言做了很多工作，对非线性回归模型做了很大简化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Formula: Y ~ a + (0.49 - a) * exp(-b * (X - 8))\n",
       "\n",
       "Parameters:\n",
       "  Estimate Std. Error t value Pr(>|t|)    \n",
       "a 0.390140   0.005045  77.333  < 2e-16 ***\n",
       "b 0.101633   0.013360   7.607 1.99e-09 ***\n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "Residual standard error: 0.01091 on 42 degrees of freedom\n",
       "\n",
       "Number of iterations to convergence: 19 \n",
       "Achieved convergence tolerance: 1.365e-06\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "###内在非线性回归\n",
    "## 输入数据，构成数据框\n",
    "cl<-data.frame(\n",
    "   X=c(rep(2*4:21, c(2, 4, 4, 3, 3, 2, 3, 3, 3, 3, 2, \n",
    "       3, 2, 1, 2, 2, 1, 1))),\n",
    "   Y=c(0.49, 0.49, 0.48, 0.47, 0.48, 0.47, 0.46, 0.46, \n",
    "       0.45, 0.43, 0.45, 0.43, 0.43, 0.44, 0.43, 0.43, \n",
    "       0.46, 0.45, 0.42, 0.42, 0.43, 0.41, 0.41, 0.40, \n",
    "       0.42, 0.40, 0.40, 0.41, 0.40, 0.41, 0.41, 0.40, \n",
    "       0.40, 0.40, 0.38, 0.41, 0.40, 0.40, 0.41, 0.38, \n",
    "       0.40, 0.40, 0.39, 0.39)\n",
    ")\n",
    "\n",
    "## 作非线性拟合，并输出各参数的估计值\n",
    "nls.sol<-nls(Y~a+(0.49-a)*exp(-b*(X-8)), data=cl,\n",
    "             start = list( a= 0.1, b = 0.01 ))\n",
    "summary(nls.sol)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "ename": "ERROR",
     "evalue": "Error in fn(nls.sum$parameters[1, 1], nls.sum$parameters[2, 1], cl$X): object 'nls.sum' not found\n",
     "output_type": "error",
     "traceback": [
      "Error in fn(nls.sum$parameters[1, 1], nls.sum$parameters[2, 1], cl$X): object 'nls.sum' not found\nTraceback:\n",
      "1. fn(nls.sum$parameters[1, 1], nls.sum$parameters[2, 1], cl$X)"
     ]
    },
    {
     "data": {
      "image/png": "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\nTkSuQmCC",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 画出拟合曲线和散点图\n",
    "xfit<-seq(8,44,len=200)\n",
    "yfit<-predict(nls.sol, data.frame(X=xfit))\n",
    "plot(cl$X, cl$Y)\n",
    "lines(xfit,yfit)\n",
    "\n",
    "## 计算偏导数和相应的Jacobi矩阵\n",
    "fn<-function(a, b, X){\n",
    "   f1 <- 1-exp(-b*(X-8))\n",
    "   f2 <- -(0.49-a)*(X-8)*exp(-b*(X-8))\n",
    "   cbind(f1,f2)\n",
    "}\n",
    "D<-fn(nls.sum$parameters[1,1], nls.sum$parameters[2,1], cl$X)\n",
    "\n",
    "## 作theta的方差估计\n",
    "theta.var<-nls.sum$sigma^2*solve(t(D)%*%D); theta.var"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.回归样条"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "library(ISLR)\n",
    "#data(\"Wage\")\n",
    "attach(Wage)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Call:\n",
       "lm(formula = wage ~ splines::bs(age, knots = c(25, 40, 60)), \n",
       "    data = Wage)\n",
       "\n",
       "Residuals:\n",
       "    Min      1Q  Median      3Q     Max \n",
       "-98.832 -24.537  -5.049  15.209 203.207 \n",
       "\n",
       "Coefficients:\n",
       "                                         Estimate Std. Error t value Pr(>|t|)\n",
       "(Intercept)                                60.494      9.460   6.394 1.86e-10\n",
       "splines::bs(age, knots = c(25, 40, 60))1    3.980     12.538   0.317 0.750899\n",
       "splines::bs(age, knots = c(25, 40, 60))2   44.631      9.626   4.636 3.70e-06\n",
       "splines::bs(age, knots = c(25, 40, 60))3   62.839     10.755   5.843 5.69e-09\n",
       "splines::bs(age, knots = c(25, 40, 60))4   55.991     10.706   5.230 1.81e-07\n",
       "splines::bs(age, knots = c(25, 40, 60))5   50.688     14.402   3.520 0.000439\n",
       "splines::bs(age, knots = c(25, 40, 60))6   16.606     19.126   0.868 0.385338\n",
       "                                            \n",
       "(Intercept)                              ***\n",
       "splines::bs(age, knots = c(25, 40, 60))1    \n",
       "splines::bs(age, knots = c(25, 40, 60))2 ***\n",
       "splines::bs(age, knots = c(25, 40, 60))3 ***\n",
       "splines::bs(age, knots = c(25, 40, 60))4 ***\n",
       "splines::bs(age, knots = c(25, 40, 60))5 ***\n",
       "splines::bs(age, knots = c(25, 40, 60))6    \n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "Residual standard error: 39.92 on 2993 degrees of freedom\n",
       "Multiple R-squared:  0.08642,\tAdjusted R-squared:  0.08459 \n",
       "F-statistic: 47.19 on 6 and 2993 DF,  p-value: < 2.2e-16\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\ngg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "library(splines)\n",
    "agelims=range(age)\n",
    "age.grid=seq(from=agelims[1],to=agelims[2])\n",
    "#fit=lm(wage~bs(age,knots=c(25,40,60)),data=Wage)\n",
    "fit=lm(wage~splines::bs(age,knots=c(25,40,60)),data=Wage)\n",
    "summary(fit)\n",
    "pred=predict(fit,newdata=list(age=age.grid),se=T)\n",
    "plot(age,wage,col=\"gray\")\n",
    "lines(age.grid,pred$fit,lwd=2)\n",
    "lines(age.grid,pred$fit+2*pred$se,col='red',lty=\"dashed\")\n",
    "lines(age.grid,pred$fit-2*pred$se,col='red',lty=\"dashed\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Call:\n",
       "lm(formula = wage ~ splines::ns(age, df = 5), data = Wage)\n",
       "\n",
       "Residuals:\n",
       "    Min      1Q  Median      3Q     Max \n",
       "-98.651 -24.303  -4.885  15.495 203.837 \n",
       "\n",
       "Coefficients:\n",
       "                          Estimate Std. Error t value Pr(>|t|)    \n",
       "(Intercept)                 60.475      4.708  12.844  < 2e-16 ***\n",
       "splines::ns(age, df = 5)1   61.527      4.709  13.065  < 2e-16 ***\n",
       "splines::ns(age, df = 5)2   55.691      5.717   9.741  < 2e-16 ***\n",
       "splines::ns(age, df = 5)3   46.818      4.948   9.463  < 2e-16 ***\n",
       "splines::ns(age, df = 5)4   83.204     11.918   6.982 3.58e-12 ***\n",
       "splines::ns(age, df = 5)5    6.877      9.484   0.725    0.468    \n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "Residual standard error: 39.91 on 2994 degrees of freedom\n",
       "Multiple R-squared:  0.08683,\tAdjusted R-squared:  0.08531 \n",
       "F-statistic: 56.94 on 5 and 2994 DF,  p-value: < 2.2e-16\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAANlBMVEUAAABNTU1oaGh8fHyM\njIyampqnp6eysrK9vb2+vr7Hx8fQ0NDZ2dnh4eHp6enw8PD/AAD///9qpps6AAAACXBIWXMA\nABJ0AAASdAHeZh94AAAgAElEQVR4nO2d7WKbvBKEcZKm4W2THO7/Zk9jW9KsNEKAFwz2PD9s\nKvStHa0kcNoNQoib6e5dASEeAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJ\nSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgH\nJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQh\nHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQ\nhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBA\nQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLC\nAQlJCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJ\nCAckJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAck\nJCEckJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEc\nkJCEcEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCE\ncEBCEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBC\nEsIBCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIB\nCUkIByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkI\nByQkIRyQkIRwQEISwgEJSQgHJCQhHJCQhHBAQhLCAQlJCAckJCEckJCEcEBCEsIBCUkIByQk\n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",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "library(splines)\n",
    "agelims=range(age)\n",
    "age.grid=seq(from=agelims[1],to=agelims[2])\n",
    "#fit=lm(wage~splines::ns(age,knots=c(25,40,60)),data=Wage)\n",
    "fit=lm(wage~splines::ns(age,df=5),data=Wage)\n",
    "summary(fit)\n",
    "pred=predict(fit,newdata=list(age=age.grid),se=T)\n",
    "par(pin = c(6,4))\n",
    "plot(age,wage,col=\"gray\")\n",
    "lines(age.grid,pred$fit,lwd=3)\n",
    "lines(age.grid,pred$fit+2*pred$se,col='red',lty=\"dashed\",lwd=3)\n",
    "lines(age.grid,pred$fit-2*pred$se,col='red',lty=\"dashed\",lwd=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- ##### BSplines回归样条和Statsmodels对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\n",
       "Call:\n",
       "lm(formula = wage ~ splines::bs(year, df = 4, degree = 3) + splines::bs(age, \n",
       "    df = 5, degree = 3) + education, data = Wage)\n",
       "\n",
       "Residuals:\n",
       "     Min       1Q   Median       3Q      Max \n",
       "-119.483  -19.826   -3.393   14.145  213.735 \n",
       "\n",
       "Coefficients:\n",
       "                                       Estimate Std. Error t value Pr(>|t|)    \n",
       "(Intercept)                             48.1113     6.0237   7.987 1.96e-15 ***\n",
       "splines::bs(year, df = 4, degree = 3)1   0.5586     3.9896   0.140  0.88866    \n",
       "splines::bs(year, df = 4, degree = 3)2  10.1098     5.0841   1.989  0.04685 *  \n",
       "splines::bs(year, df = 4, degree = 3)3   3.5835     3.9900   0.898  0.36920    \n",
       "splines::bs(year, df = 4, degree = 3)4   7.6714     2.3427   3.275  0.00107 ** \n",
       "splines::bs(age, df = 5, degree = 3)1    5.6405     9.4754   0.595  0.55170    \n",
       "splines::bs(age, df = 5, degree = 3)2   44.0021     5.5212   7.970 2.24e-15 ***\n",
       "splines::bs(age, df = 5, degree = 3)3   35.4848     8.2038   4.325 1.57e-05 ***\n",
       "splines::bs(age, df = 5, degree = 3)4   41.1406     9.1264   4.508 6.80e-06 ***\n",
       "splines::bs(age, df = 5, degree = 3)5    8.6295    13.7269   0.629  0.52962    \n",
       "education2. HS Grad                     10.9936     2.4315   4.521 6.38e-06 ***\n",
       "education3. Some College                23.4713     2.5638   9.155  < 2e-16 ***\n",
       "education4. College Grad                38.2625     2.5498  15.006  < 2e-16 ***\n",
       "education5. Advanced Degree             62.4870     2.7618  22.626  < 2e-16 ***\n",
       "---\n",
       "Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1\n",
       "\n",
       "Residual standard error: 35.17 on 2986 degrees of freedom\n",
       "Multiple R-squared:  0.2927,\tAdjusted R-squared:  0.2896 \n",
       "F-statistic: 95.04 on 13 and 2986 DF,  p-value: < 2.2e-16\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning message in smooth.spline(age, wage, cv = TRUE):\n",
      "\"cross-validation with non-unique 'x' values seems doubtful\"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nn9/CzemYtueHb1m62ZzbPpuUs5sTx83lvc3YzyGYeTkP57vIh3PzaJO3m9/LHNj8+nZTiUiH\n7v3vY/rq3k8n8s2hP2y6nwzd7E8d7Ltdn7ebM7vLBM/Zz+F8JH3ubvrNX9vHXbcv8K79SfuT\nt5v303FcZoJnN5WItLuM4zT39t3336N/3WeGbjbd8dpL1m76c8vXNUrGfr6GVnN28+889Y6n\nUJH7XfuL46dzQ85uujxTrRKRrpyObtedgm5wsvXv5bR4yNzNb7e9fGI5+/nqvm4Pc3bz3h1K\ndHPt4Ji5m+uK+zQJPLupSqRjt304Y+Rhf55+mbvZdr+XpnP2s+u+3/+S5dzdvHX95+a89s7+\n4Ry67EfzeV3affp2U5VIX6dQm/mz+ltyZf+sTp/Wv76ESGe2mbvput1tEyC3SJeAlLebr9Nu\nw8b7ZFqTSL/n9XHmz+prtzmvibN2c14t5Bep+9O1P54jbN5uTpsN797ncMDhtAXQZ+7m83z2\n8Z4DFYl03JxOrfmXdn9r/swzr387bRXnF+nC8bR/m1ekU470m7ub/pb95+3m67QiObrPgYpE\n2l728zcFZt4mbzfv5/lwaTr/4ZzbztlNMN8yH821+azdvJ1Xj+ezj2c31Yj0+7a9XDq/bKX8\nZty1CzYH83QT/pn5BRxOcG0i79Hc98/yfjj3/3h2U4tI3+eU+cTn+XT+fdkScOZyHem8SMnZ\nTShSicPZ5e3m0vbv6RPK2U2wnZ/3TTv9/3lV4tlNJSL93j3Kf2fDcXf6vPJfo89/Z8P+vNw/\nJxY5u/k78RxPWcW/3O/a7nbBKvObdry+dQu8s+E9uGHx7b6n689maDtnN2eua4iM/Rwvh7PP\n3M11nyv/u3ZJX3J3s81yNJWIFN75e7k7N1NHf22/XdYPWbs5cRUpZz/HQofzvb21nbWbIevP\nPQf8j6YSkQhpG4pEiAMUiRAHKBIhDlAkQhygSIQ4QJEIcYAiEeIARSLEAYpEiAMUiRAHKBIh\nDlAkQhygSIQ4QJEIcYAiEeIARSLEAYpEiAMUiRAHKBIhDlAkQhygSIQ4QJEIcYAiEeIARSLE\nAYpEiAMUiRAHKBIhDlAkQhygSIQ4QJEIcYAiEeIARSLEAYpEiAMUiRAHKBIhDlAkQhygSA3x\nvevuf4R7v+n21z8D/vXWbb7mHBehSC3x2Z05m7Q9PXo/i7Q7P7udeXBrhyK1Q9f96/t/Z3m+\nu82hP2xOj7+77bE/brvvuYe3bihSa1yj0Mmb79PjXXf8e3jsdjOPa+VQpJb4/f7cnkW6JEfn\n/3Q35h3a2uHb3xDbuzEUqTb49rfDe/f29f37KtK8oyJn+Cm0w1mZ39ccidsMFUCR2qHrfvrD\n9nnX7t/pYf/FzYZ5oUjtsL8mQz/9PV3q7g83v3MPb91QpIZ477rtz/cl9uw3f4/vdzZ07/Ro\nXihSy/B+hmqgSE1yvsnhuOv2cw+EXKFITXK97W4z9zjIDYrUJl/brntjPKoHikSIAxSJEAco\nEiEOUCRCHKBIhDhAkQhxgCIR4gBFIsQBikSIAxSJEAcoEiEOUCRCHKBIhDhAkQhxgCIR4gBF\nIsQBikSIAxSJEAcoEiEOUCRCHKBIhDhAkQhxgCIR4gBFIsQBikSIAxSJEAcoEiEO/B/e0tIc\n7hZLDQAAAABJRU5ErkJggg==",
      "text/plain": [
       "plot without title"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 420,
       "width": 420
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "library(splines)\n",
    "fit.bs=lm(wage~splines::bs(year,df=4,degree=3)+\n",
    "          splines::bs(age,df=5,degree=3)+education,data=Wage)\n",
    "summary(fit.bs)\n",
    "agelims=range(age)\n",
    "age.grid=seq(from=agelims[1],to=agelims[2])\n",
    "plot(age,wage,xlim=agelims,cex=.5,col=\"darkgrey\")\n",
    "fit=smooth.spline(age,wage,df=5)\n",
    "fit2=smooth.spline(age,wage,cv=TRUE)\n",
    "lines(fit,col=\"red\",lwd=2)\n",
    "lines(fit2,col=\"blue\",lwd=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "codemirror_mode": "r",
   "file_extension": ".r",
   "mimetype": "text/x-r-source",
   "name": "R",
   "pygments_lexer": "r",
   "version": "4.0.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
